package com.pan.kang.entity;


import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.util.Date;

@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("table_schema")
public class TableSchemaEntity {

    /**
     * 主键
     */
    @TableId(value = "id",type = IdType.ASSIGN_UUID)
    private String id;


    /**
     * 库名
     */
    @TableField(value = "db_name")
    private String dbName;

    /**
     * 表名
     */
    @TableField(value = "table_name")
    private String tableName;

    /**
     * 表注释
     */
    @TableField(value = "table_comment")
    private String tableComment;

    /**
     * 模拟数据条数
     */
    @TableField(value = "mock_num")
    private Integer mockNum;

    /**
     * 字段名
     */
    @TableField(value = "field_name")
    private String fieldName;

    /**
     * 字段类型
     */
    @TableField(value = "field_type")
    private String fieldType;

    /**
     * 默认值
     */
    @TableField(value = "default_value")
    private String defaultValue;

    /**
     * 是否非空
     */
    @TableField(value = "not_null")
    private boolean notNull;

    /**
     * 注释（字段中文名）
     */
    @TableField(value = "comment")
    private String comment;

    /**
     * 是否为主键
     */
    @TableField(value = "primary_key")
    private boolean primaryKey;

    /**
     * 是否自增
     */
    @TableField(value = "auto_increment")
    private boolean autoIncrement;

    /**
     * 模拟类型（随机、图片、规则、词库）
     */
    @TableField(value = "mock_type")
    private String mockType;

    /**
     * 模拟参数
     */
    @TableField(value = "mock_params")
    private String mockParams;

    /**
     * 附加条件
     */
    @TableField(value = "on_update")
    private String onUpdate;

    /**
     * 创建时间
     */
    @TableField(value = "create_time", fill = FieldFill.INSERT)
    private Date createTime;

    /**
     * 更新时间
     */
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;

}
